import tpl from './index.html';

export default {
    // 组件字模板
    template: tpl,
    // 外部传入数据
    propTypes: {
        // 0、组件默认对外双向绑定的数据
        value: {
            // type: ['boolean', 'numeric'],
            type: function (value, props) {
                console.log(value);
                if (Yox.is.boolean(value)) {
                    return true;
                };
                if (Yox.is.number(value)) {
                    if (value >= 0) {
                        return true;
                    }
                }
                if (Yox.is.string(value)) {
                    if (value == "1" || value == "0") {
                        return true;
                    }
                }
                return false;
            },
            value: false
        },
        // 1、组件包裹层通用属性
        // 自定义class
        className: {
            type: 'string',
            value: ''
        },
        // 自定义行内样式
        style: {
            type: 'string',
            value: ''
        },
        // 组件禁用状态
        disabled: {
            type: function (value, props) {
                // 只要写了这个属性，有没有值都认了
                return true;
            },
            value: false
        },
        // 2、更多自定义参数
        type: {
            type: 'string',
            value: ''
        }

    },
    // 内部数据
    data: function () {
        return {
            name: "组件名称",
            // 状态
            states: {

            },
            // 配置 
            opts: {

            },
            // 其他
            other: {

            },
            check: false,
        }
    },
    // 方法
    methods: {
        checkbox: function () {
            var self = this;
            var tpls = self.get('');
            if (tpls.check) {
                if (Yox.is.string(tpls.value)) {
                    self.set('value', '0')
                    self.set('check', false)
                } else if (Yox.is.number(tpls.value)) {
                    self.set('value', 0)
                    self.set('check', false)
                } else {
                    self.set('value', false)
                    self.set('check', false)
                }
            } else {
                if (Yox.is.string(tpls.value)) {
                    self.set('value', '1')
                    self.set('check', true)
                } else if (Yox.is.number(tpls.value)) {
                    self.set('value', 1)
                    self.set('check', true)
                } else {
                    self.set('value', true)
                    self.set('check', true)
                }
            }
        }
    },
    // 监听
    watchers: {
        "value": {
            watcher: function (newValue) {
                var self = this;
                if (Yox.is.boolean(newValue)) {
                    if (newValue) {
                        self.set('check', true)
                    } else {
                        self.set('check', false)
                    }
                } else if (Yox.is.numeric(newValue)) {
                    if (Yox.is.string(newValue)) {
                        newValue = Number(newValue)
                    }
                    if (newValue > 0) {
                        self.set('check', true)
                    } else {
                        self.set('check', false)
                    }
                }
            },
            sync: true
        }
    },
    afterMount: function () {

    }
};